package cn.xuanwu.map;

import cn.xuanwu.dto.Student;

import java.util.HashMap;

public class Demo8_Map {
    /**
     * * A:案例演示
     * 集合嵌套之HashMap嵌套HashMap
     *
     * 需求:
     * 双元课堂有很多基础班
     * 第88期基础班定义成一个双列集合,键是学生对象,值是学生的归属地
     * 第99期基础班定义成一个双列集合,键是学生对象,值是学生的归属地
     *
     * 无论88期还是99期都是班级对象,所以为了便于统一管理,把这些班级对象添加到双元课堂集合中
     */
    public static void main(String[] args) {
//        第88期基础班定义成一个双列集合,键是学生对象,值是学生的归属地
        HashMap<Student, String> hm1 = new HashMap<>();
        hm1.put(new Student("张三",23),"江苏");
        hm1.put(new Student("李四",24),"北京");
        hm1.put(new Student("王五",25),"香港");
//        第99期基础班定义成一个双列集合,键是学生对象,值是学生的归属地
        HashMap<Student, String> hm2 = new HashMap<>();
        hm2.put(new Student("丁真",26),"西藏");
        hm2.put(new Student("迪丽热巴",31),"新疆");
        hm2.put(new Student("肖战",30),"XX");

//        无论88期还是99期都是班级对象,所以为了便于统一管理,把这些班级对象添加到双元课堂集合中
        HashMap<HashMap<Student, String>, String> hm = new HashMap<>();
        hm.put(hm1,"88期");
        hm.put(hm2,"99期");

        // 遍历
        for(HashMap<Student, String> h :hm.keySet()){  // hm.keySet()代表的是双列集合中键的集合
            String value = hm.get(h); //get(h)根据键对象获取值对象
            System.out.println("value = " + value);
            // 根据键 当做一个map，获取key和value
            for (Student key:h.keySet()){
                String value2 = h.get(key);
                // key 是student对象  ，value2 是归属地 ，value是多少期班级
                System.out.println(key + "=" + value2 + "=" + value);
                //
            }
        }


    }


}
